HAL DMA linked-list management functions migration ¶
This section provides information about the HAL DMA io operation functions migration.
HAL DMA operation functions in polling mode ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_List_BuildNode(DMA_NodeConfTypeDef const *const pNodeConfig,
DMA_NodeTypeDef *const pNode);
|
hal_status_t HAL_DMA_FillNodeConfig(hal_dma_node_t *p_node, const hal_dma_node_config_t *p_conf,
hal_dma_node_type_t node_type);
|
HAL_StatusTypeDef HAL_DMAEx_List_GetNodeConfig(DMA_NodeConfTypeDef *const pNodeConfig,
DMA_NodeTypeDef const *const pNode);
|
void HAL_DMA_GetNodeConfig(const hal_dma_node_t *p_node, hal_dma_node_config_t *p_conf,
hal_dma_node_type_t *p_node_type);
|
HAL_StatusTypeDef HAL_DMAEx_List_ConvertQToDynamic(DMA_QListTypeDef *const pQList);
|
hal_status_t HAL_DMA_ConvertQNodesToDynamic(hal_q_t *p_q);
|
HAL_StatusTypeDef HAL_DMAEx_List_ConvertQToStatic(DMA_QListTypeDef *const pQList);
|
hal_status_t HAL_DMA_ConvertQNodesToStatic(hal_q_t *p_q);
|
In HAL2, all queuing functions are removed from
HAL
DMA
driver
and replaced in the
HAL
Q
driver.
HAL DMA configure circular mode ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_List_SetCircularModeConfig(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pFirstCircularNode);
|
hal_status_t HAL_Q_SetCircularLinkQ(hal_q_t *p_q, void *p_node);
|
HAL_StatusTypeDef HAL_DMAEx_List_ClearCircularMode(DMA_QListTypeDef *const pQList);
|
hal_status_t HAL_Q_ClearCircularLinkQ(hal_q_t *p_q);
|
HAL_StatusTypeDef HAL_DMAEx_List_SetCircularMode(DMA_QListTypeDef *const pQList);
|
hal_status_t HAL_Q_SetCircularLinkQ_Head(hal_q_t *p_q);
|
HAL DMA insert node ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_List_InsertNode(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pPrevNode,
DMA_NodeTypeDef *const pNewNode);
|
hal_status_t HAL_Q_InsertNode(hal_q_t *p_q, const void *p_node, void *p_new_node);
|
HAL_StatusTypeDef HAL_DMAEx_List_InsertNode_Head(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pNewNode);
|
hal_status_t HAL_Q_InsertNode_Head(hal_q_t *p_q, void *p_new_node);
|
HAL_StatusTypeDef HAL_DMAEx_List_InsertNode_Tail(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pNewNode);
|
hal_status_t HAL_Q_InsertNode_Tail(hal_q_t *p_q, void *p_new_node);
|
HAL DMA remove node ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_List_RemoveNode(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pNode);
|
hal_status_t HAL_Q_RemoveNode(hal_q_t *p_q, const void *p_node);
|
HAL_StatusTypeDef HAL_DMAEx_List_RemoveNode_Head(DMA_QListTypeDef *const pQList);
|
hal_status_t HAL_Q_RemoveNode_Head(hal_q_t *p_q);
|
HAL_StatusTypeDef HAL_DMAEx_List_RemoveNode_Tail(DMA_QListTypeDef *const pQList);
|
hal_status_t HAL_Q_RemoveNode_Tail(hal_q_t *p_q);
|
HAL DMA replace node ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_List_ReplaceNode(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pOldNode,
DMA_NodeTypeDef *const pNewNode);
|
hal_status_t HAL_Q_ReplaceNode(hal_q_t *p_q, const void *p_old_node, void *p_new_node);
|
HAL_StatusTypeDef HAL_DMAEx_List_ReplaceNode_Head(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pNewNode);
|
hal_status_t HAL_Q_ReplaceNode_Head(hal_q_t *p_q, void *p_new_node);
|
HAL_StatusTypeDef HAL_DMAEx_List_ReplaceNode_Tail(DMA_QListTypeDef *const pQList,
DMA_NodeTypeDef *const pNewNode);
|
hal_status_t HAL_Q_ReplaceNode_Tail(hal_q_t *p_q, void *p_new_node);
|
HAL DMA reset queue ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_List_ResetQ(DMA_QListTypeDef *const pQList);
|
void HAL_Q_DeInit(hal_q_t *p_q);
|
HAL DMA insert queue ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_List_InsertQ(DMA_QListTypeDef *const pSrcQList,
DMA_NodeTypeDef const *const pPrevNode,
DMA_QListTypeDef *const pDestQList);
|
hal_status_t HAL_Q_InsertQ(hal_q_t *p_dest_q, hal_q_t *p_src_q, const void *p_node);
|
HAL_StatusTypeDef HAL_DMAEx_List_InsertQ_Head(DMA_QListTypeDef *const pSrcQList,
DMA_QListTypeDef *const pDestQList);
|
hal_status_t HAL_Q_InsertQ_Head(hal_q_t *p_dest_q, hal_q_t *p_src_q);
|
HAL_StatusTypeDef HAL_DMAEx_List_InsertQ_Tail(DMA_QListTypeDef *const pSrcQList,
DMA_QListTypeDef *const pDestQList);
|
hal_status_t HAL_Q_InsertQ_Tail(hal_q_t *p_dest_q, hal_q_t *p_src_q);
|
HAL DMA link/unlink queue ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_DMAEx_List_LinkQ();
HAL_DMAEx_List_UnLinkQ();
|
Removed: APIs that link DMA handle and queue object are removed within HAL2 to simplify the queue assigning to physical channel through linked-list start process APIs.
|
HAL DMA data handling, trigger and repeated block configuration functions ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_ConfigDataHandling(DMA_HandleTypeDef *const hdma,
DMA_DataHandlingConfTypeDef const *const pConfigDataHandling);
|
hal_status_t HAL_DMA_SetConfigDirectXferDataHandling(hal_dma_handle_t *hdma,
const hal_dma_data_handling_config_t *p_config);
|
HAL_StatusTypeDef HAL_DMAEx_ConfigTrigger(DMA_HandleTypeDef *const hdma,
DMA_TriggerConfTypeDef const *const pConfigTrigger);
|
hal_status_t HAL_DMA_SetConfigDirectXferTrigger(hal_dma_handle_t *hdma, const hal_dma_trigger_config_t *p_config);
|
HAL_StatusTypeDef HAL_DMAEx_ConfigRepeatBlock(DMA_HandleTypeDef *const hdma,
DMA_RepeatBlockConfTypeDef const *const pConfigRepeatBlock);
|
hal_status_t HAL_DMA_SetConfigDirectXferRepeatBlock(hal_dma_handle_t *hdma,
const hal_dma_repeat_block_config_t *p_config);
|
HAL DMA suspend and resume operation functions ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_StatusTypeDef HAL_DMAEx_Suspend(DMA_HandleTypeDef *const hdma);
|
hal_status_t HAL_DMA_Suspend(hal_dma_handle_t *hdma);
|
HAL_StatusTypeDef HAL_DMAEx_Suspend_IT(DMA_HandleTypeDef *const hdma);
|
hal_status_t HAL_DMA_Suspend_IT(hal_dma_handle_t *hdma);
|
HAL_StatusTypeDef HAL_DMAEx_Resume(DMA_HandleTypeDef *const hdma);
|
hal_status_t HAL_DMA_Resume(hal_dma_handle_t *hdma);
|
HAL DMA FIFO status function ¶
|
HAL1 |
HAL2 |
|---|---|
uint32_t HAL_DMAEx_GetFifoLevel(DMA_HandleTypeDef const *const hdma);
|
uint32_t HAL_DMA_GetFifoDataByte(const hal_dma_handle_t *hdma);
|